package com.ruoyi.system.service.cloudroom;

public interface RoomService {

    /**
     * 创建房间
     * @return
     * @throws Exception
     */
    String create() throws Exception;

    /**
     * 删除房间
     * @param roomId
     * @return
     * @throws Exception
     */
    String delete(long roomId) throws Exception;

    /**
     * 查询在线人数
     * @param roomIds
     * @return
     * @throws Exception
     */
    String queryOnlineNum(String roomIds) throws Exception;

    /**
     * 查询在线人员信息
     * @param roomId
     * @return
     * @throws Exception
     */
    String queryOnlineMembers(long roomId) throws Exception;

    /**
     * 查询指定房间用量信息
     * @param roomIds
     * @param fromDate
     * @param toDate
     * @return
     * @throws Exception
     */
    String queryUsageInfo(String roomIds, String fromDate, String toDate) throws Exception;

    /**
     * 查询所有房间用量信息
     * @param fromDate
     * @param toDate
     * @return
     * @throws Exception
     */
    String queryAllUsageInfo(String fromDate, String toDate) throws Exception;

    /**
     * 查询历史房间列表
     *
     * @param roomId
     * @param startTime
     * @param endTime
     * @param pageNumber
     * @param pageSize
     * @return
     */
    String queryRoomHistory(Long roomId, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) throws Exception;

    /**
     * 查询历史房间参会成员列表
     *
     * @param roomId
     * @param times
     * @param pageNumber
     * @param pageSize
     * @return
     */
    String queryRoomHistoryParticipant(Long roomId, Integer times, Integer pageNumber, Integer pageSize) throws Exception;

    /**
     * 邀请
     *
     * @param roomId
     * @param uid
     * @param nickName
     * @param targetUrl
     * @return
     * @throws Exception
     */
    String invite(Long roomId, String uid, String nickName, String targetUrl) throws Exception;

    /**
     * 踢人
     *
     * @param roomId
     * @param uid
     * @return
     */
    String kickOut(Long roomId, String uid) throws Exception;

    /**
     * 查询gb注册终端列表
     *
     * @param deviceNum
     * @return
     */
    String queryGbList(String deviceNum) throws Exception ;
}
